package com.dkm.ec.product.domain;

import javax.annotation.Resource;

import org.apache.commons.lang.StringUtils;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;

import com.dkm.base.core.helper.SpringHelper;
import com.dkm.biz.domain.AbstractDomain;
import com.dkm.ec.product.persistence.dao.ProductEntityDao;
import com.dkm.ec.product.persistence.entity.ProductEntityPo;
import com.dkm.ec.product.repository.ProductEntityRepository;

/**
 * 对象功能:产品（抽象） 领域对象实体
 * 开发公司:SKG.COM
 * 开发人员:颜超敏
 * 创建时间:2014-12-17 11:30:15
 */
@Service
@Scope("prototype")
public class ProductEntity extends AbstractDomain<String, ProductEntityPo>{
	 
	 private ProductEntityDao productEntityDao = null;
	 @Resource
	 ProductEntityRepository productEntityRepository;

	protected void init(){
		productEntityDao = SpringHelper.getBean(ProductEntityDao.class);
		setDao(productEntityDao);
	}	 
	 
	/**
	 * 检查型号是否合法
	 * @param prodId
	 * @param prodKey
	 * @return true 合法 false 不合法
	 */
	public Boolean validProdKey(String prodId, String prodKey){
		Boolean validFlag = false;
		if(StringUtils.isEmpty(prodId)){
			ProductEntityPo productEntityPo=productEntityRepository.findByBusinessKey(prodKey);
			if(productEntityPo!=null) validFlag= false;
			else validFlag= true;	
		}else{
			ProductEntity productEntity=productEntityRepository.load(prodId);
			if(productEntity!=null){
				if(prodKey.equals(productEntity.getData().getKey())){
					validFlag= true;
				}else{
					ProductEntityPo productEntityPo=productEntityRepository.findByBusinessKey(prodKey);
					if(productEntityPo!=null) validFlag= false;
					else validFlag= true;	
				}
			}else{
				ProductEntityPo productEntityPo=productEntityRepository.findByBusinessKey(prodKey);
				if(productEntityPo!=null) validFlag= false;
				else validFlag= true;	
			}
			
		}
		return validFlag;
		
	}	
}
